home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / c / jpl_c.zip / SCANF.C < prev    next >
Text File  |  1986-05-18  |  1KB  |  45 lines

  1. /* 1.1  01-08-86                        (scanf.c)
  2.  ************************************************************************
  3.  *            Robert C. Tausworthe                *
  4.  *            Jet Propulsion Laboratory            *
  5.  *            Pasadena, CA 91009        1986        *
  6.  ************************************************************************/
  7.  
  8. #include "defs.h"
  9. #include "stdtyp.h"
  10. #include "stdio.h"
  11.  
  12. /*----------------------------------------------------------------------*/
  13.  
  14. LOCAL int lastchar;
  15.  
  16. /************************************************************************/
  17.  
  18. scanf(fmt, arg)        /* Read stdin using format fmt, and deposit
  19.                information into arguments in arg list. Return
  20.                count of items read, or EOF on error.    */
  21. /*----------------------------------------------------------------------*/
  22. STRING fmt;
  23. unsigned *arg;
  24. {
  25.     int _getc(), unformat();
  26.  
  27.     lastchar = EOF;
  28.     return unformat(_getc, fmt, &arg);
  29. }
  30.  
  31. /************************************************************************/
  32.     LOCAL
  33. _getc(forward)        /* Return a character from the stdin.
  34.                If forward is TRUE, get next character and
  35.                advance; else, unget the character unless the
  36.                end has been reached. Return EOF if so.    */
  37. /*----------------------------------------------------------------------*/
  38. BOOL forward;
  39. {
  40.     LOCAL int lastch = EOF;
  41.  
  42.     return (lastch = (forward ? (feof(stdin) ? EOF : getchar())
  43.         : ungetc(lastch, stdin)));
  44. }
  45.